
package UsuariosDAO;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import Exceptions.CadUserException;
import Model.Bibliotecario;
import Model.Usuario;
import ServicosDAO.ConexaoDAO;
import Tipos.TipoSexo;

public class BibliotecarioDAO extends UsuarioDAO {

	public boolean adicionarBibliotecario(Usuario usuario) {

		String sql = "insert into bibliotecario(id_bibliotecario) values(?)";
		Connection conexao = new ConexaoDAO().getConnection();

		int ok = 0;

		try {

			PreparedStatement stmt = conexao.prepareStatement(sql);

			stmt.setString(1, usuario.getId_usuario());

			ok = stmt.executeUpdate();

			stmt.close();
			conexao.close();

			if (ok == 1) {
				return true;
			}

		} catch (SQLException e) {
			throw new CadUserException(e);
		}
		return false;
	}




	/**
	 * Seleciona apenas usuarios bibliotecarios
	 */
	@Override
	public Usuario selectUsuario(Usuario usuario) {

		Connection conexao = new ConexaoDAO().getConnection();

		try {
			ResultSet rs;
			Bibliotecario user = new Bibliotecario();
			String sql = "select * from usuario u, bibliotecario b where u.id_usuario=b.id_bibliotecario and u.id_usuario=?";

			// String sql =
			// "select * from usuario u, leitor l where u.id_usuario=l.id_usuario and u.id_usuario=?";

			PreparedStatement stmt = conexao.prepareStatement(sql);

			stmt.setString(1, usuario.getId_usuario());

			rs = stmt.executeQuery();

			if (rs != null) {

				while (rs.next()) {
					user.setId_usuario(rs.getString("id_usuario"));
					user.setNome(rs.getString("nome"));
					user.setSexo(TipoSexo.valueOf(rs.getString("sexo")));
					user.setDt_nascimento(rs.getString("dt_nascimento"));
					user.setSobrenome(rs.getString("sobrenome"));
				}

				stmt.close();
				conexao.close();

				return user;

			}
		} catch (SQLException e) {
			e.printStackTrace();
			throw new RuntimeException();
		}

		return null;

	}

}
